package com.hawk.eye.server.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hawk.eye.common.page.PageQuery;
import com.hawk.eye.common.page.PageResult;
import com.hawk.eye.server.domain.dto.req.RepairApiLastDataReqDTO;
import com.hawk.eye.server.domain.dto.req.RepairApiReqDTO;
import com.hawk.eye.server.domain.dto.resp.RepairApiLogRespDTO;
import com.hawk.eye.server.domain.dto.resp.RepairApiParamRespDTO;
import com.hawk.eye.server.domain.dto.resp.RepairApiRespDTO;
import com.hawk.eye.server.domain.po.RepairApi;

import java.util.List;

/**
 * 修复脚本 Service接口
 *
 * @author salad
 * @date 2023-09-23
 */
public interface IRepairApiService extends IService<RepairApi> {

    /**
     *
     * @param pageQuery
     * @param reqDTO
     * @return
     */
    PageResult<RepairApiRespDTO> page(PageQuery pageQuery, RepairApiReqDTO reqDTO);

    /**
     *
     * @param reqDTO
     * @return
     */
    boolean save(RepairApiReqDTO reqDTO);

    /**
     *
     * @param id
     * @return
     */
    RepairApiRespDTO detail(Long id);

    /**
     *
     * @param reqDTO
     * @return
     */
    boolean update(RepairApiReqDTO reqDTO);

    /**
     *
     * @param reqDTO
     * @return
     */
    Boolean executeRepairApi(RepairApiReqDTO reqDTO);

    /**
     *
     * @param reqDTO
     */
    void updateLastExecData(RepairApiLastDataReqDTO reqDTO);

    /**
     *
     * @param repairId
     * @param pageQuery
     * @return
     */
    PageResult<RepairApiLogRespDTO> repairApiLogList(Long repairId, PageQuery pageQuery);

    /**
     *
     * @param stackHash
     * @return
     */
    RepairApiRespDTO getRepairApiByStackHash(String stackHash);

    /**
     *
     * @param id
     * @return
     */
    RepairApiParamRespDTO getExecuteRepairParams(Long id);

}
